// PropertyCustomVisitor.h: interface for the PropertyCustomVisitor class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PROPERTYCUSTOMVISITOR_H__06AF182D_E58B_4F9A_A548_F9FB69DED8E0__INCLUDED_)
#define AFX_PROPERTYCUSTOMVISITOR_H__06AF182D_E58B_4F9A_A548_F9FB69DED8E0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "PropertyVisitor.h"
using namespace PropertySystem;

class PropertySubWindow;
class DllExport PropertyCustomVisitor : public PropertyVisitor 
{
public:
	PropertyCustomVisitor();
	virtual ~PropertyCustomVisitor();

public:
	virtual BOOL Visit(CustomDBVariable* pVar);
	virtual BOOL Visit(CustomNonDBVariable* pVar);
	virtual BOOL Visit(DBVariable* pVar);
	virtual BOOL Visit(NonDBVariable* pVar);

public:
	INT GetSize(){
		return m_theSubWindows.GetSize();
	}

	PropertySubWindow* GetAt(INT nIndex){ 
		return m_theSubWindows.GetAt(nIndex);
	}

private:
	void AddSubWindow(PropertySubWindow* pSubWnd);

private:
	CArray<PropertySubWindow*, PropertySubWindow*> m_theSubWindows;
};

#endif // !defined(AFX_PROPERTYCUSTOMVISITOR_H__06AF182D_E58B_4F9A_A548_F9FB69DED8E0__INCLUDED_)
